﻿@{
    ViewBag.Title = "title";
}
@Html.Partial("Head")
<h2>title</h2>

<p>result里面的所有的函数，都是返回一个变量i 但是这个i 对于for里面的｛｝来说，</p>
<p> 是在外部定义的“全局”变量，所以这个时候，返回的其实是一份指向这个变量的返回，i改变了，十个函数的返回值都跟着变了</p>
<b>-------------------------</b>
<p>而对于下面的情况，由于每一个i都是传递进去后，以参数方式返回，就没有这个问题了</p>

<script>
    //
    var result = [];
    for (var i = 0; i < 10; i++) {
        result.push(function () { return i; });
    }
    console.log(result[5]()); // 10, not 5


    var result = [];
    for (var i = 0; i < 10; i++) {
        (function (i) {  // copied i
            result.push(function () { return i; });
        }(i)); // original i
    }


</script>